<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Pedido_model extends CI_Model {
		
	public function get_prazo(){
		$singem = $this->load->database('singem', TRUE);
		$singem->select('cast(Faturador as varchar) as Faturador, Descricao');
		return $singem->get('Cad_Faturadores')->result();
	}
	
	public function get_prazo_byid($id = NULL){
		if($id!= NULL){
			$singem = $this->load->database('singem', TRUE);
			$singem->select('Descricao');
			$singem->where('Faturador',$id);
			return $singem->get('Cad_Faturadores')->row();
		}else {
			return false;
		}
	}
	
	public function get_all(){
		$alegroPedidos = $this->load->database('alegro', TRUE);
		$alegroPedidos->where('ped_excluido', 0);
		$alegroPedidos->order_by("ped_codigo", "desc");
		return $alegroPedidos->get('tbl_pedido')->result();
	}
	
	public function get_all_pedidos_by_vendedor($vendedor_id=NULL){
		if ($vendedor_id == NULL){
			return FALSE;
		}
		$alegroPedidos = $this->load->database('alegro', TRUE);
		$alegroPedidos->where('usu_codigo', $vendedor_id);
		$alegroPedidos->where('ped_excluido', 0);
		$alegroPedidos->order_by("ped_codigo", "desc");
		return $alegroPedidos->get('tbl_pedido')->result();
	}
	
	public function get_byid($id=NULL){
		if ($id != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->where('ped_codigo', $id);
			//$this->db->limit(1);
			
			return $alegroPedidos->get('tbl_pedido')->row();
		} else {
			return false;
		}
	}
	
	public function get_itensPedido($pedido_id=NULL){
		if ($pedido_id != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->where('ped_codigo', $pedido_id);
			return $alegroPedidos->get('tbl_produto')->result();
		} else {
			return false;
		}
	}
	
	public function do_adicionar($dados=NULL){
		if ($dados != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido ON');
			$alegroPedidos->insert('tbl_pedido', $dados);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido OFF');
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	public function do_alterar($codigoPedido=NULL, $pedido=NULL, $produtos=NULL){
		if ($codigoPedido != NULL && $pedido != NULL && $produtos != NULL){
			$alegroPedidos = $this->load->database('alegro', TRUE);
			
			$this->db->trans_start();
			//$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido ON');
			
			//ALTERA O PEDIDO
			$alegroPedidos->where('ped_codigo', $codigoPedido);
			$alegroPedidos->update('tbl_pedido', $pedido);
			
			//DELETA TODOS OS PRODUTOS DO PEDIDO NA TABELA
			$alegroPedidos->where('ped_codigo', $codigoPedido);
			$alegroPedidos->delete('tbl_produto');
			
			//ADICIONA TODOS OS PRODUTOS SELECIONADOS
			foreach ($produtos as $obj) {
				$produto['pro_codigo'] = $obj->id;
				$produto['ped_codigo'] = (int)$codigoPedido;
				$produto['pro_quantidade'] = (int)$obj->qtd;
				if (isset($obj->descricao) && $obj->descricao != ""){
					$produto['pro_descricao'] = $obj->descricao;
				}
				$produto['pro_ipi'] = $obj->ipi;
				//$produto['pro_valor_unitario'] = $obj->precoUnitario;
				//$produto['pro_valor_unitario_com_ipi'] = $obj->precoUnitarioComIpi;
				//$produto['pro_valor_total_produto'] = $obj->precoTotal;
				//$produto['pro_valor_total_produto_com_ipi'] = $obj->precoTotalComIpi;

// 				$produto['pro_valor_unitario'] 							 = number_format($obj->precoUnitario, 2, ',', '.');
// 				$produto['pro_valor_unitario_com_desconto'] 			 = number_format($obj->precoUnitarioComDesconto, 2, ',', '.');
// 				$produto['pro_valor_unitario_com_ipi'] 					 = number_format($obj->precoUnitarioComIpi, 2, ',', '.');
// 				$produto['pro_valor_unitario_com_ipi_com_desconto'] 	 = number_format($obj->precoUnitarioComIpiComDesconto, 2, ',', '.');
				
// 				$produto['pro_valor_total_produto'] 					 = number_format($obj->precoTotal, 2, ',', '.');
// 				$produto['pro_valor_total_produto_com_desconto'] 		 = number_format($obj->precoTotalComDesconto, 2, ',', '.');
// 				$produto['pro_valor_total_produto_com_ipi'] 			 = number_format($obj->precoTotalComIpi, 2, ',', '.');
// 				$produto['pro_valor_total_produto_com_ipi_com_desconto'] = number_format($obj->precoTotalComIpiComDesconto, 2, ',', '.');

				$produto['pro_valor_unitario'] 							 = $obj->precoUnitario;
				$produto['pro_valor_unitario_com_desconto'] 			 = $obj->precoUnitarioComDesconto;
				$produto['pro_valor_unitario_com_ipi'] 					 = $obj->precoUnitarioComIpi;
				$produto['pro_valor_unitario_com_ipi_com_desconto'] 	 = $obj->precoUnitarioComIpiComDesconto;
				
				$produto['pro_valor_total_produto'] 					 = $obj->precoTotal;
				$produto['pro_valor_total_produto_com_desconto'] 		 = $obj->precoTotalComDesconto;
				$produto['pro_valor_total_produto_com_ipi'] 			 = $obj->precoTotalComIpi;
				$produto['pro_valor_total_produto_com_ipi_com_desconto'] = $obj->precoTotalComIpiComDesconto;
				
				
				$alegroPedidos->insert('tbl_produto', $produto);
			}
			
			//$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido OFF');
			$this->db->trans_complete();
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	
	/*
	 * Status do Financeiro e Comercial
	 * 0 - Pendente
	 * 1 - Aprovado
	 * 2 - Negado
	 * 
	 * Status do Pedido
	 * 0 - Pendente
	 * 1 - Enviado
	 * 2 - Cancelado
	 */
	
	public function do_aprovar($codigo=NULL, $campo=NULL){
		if ($codigo != NULL && $campo != NULL){
			
			$this->load->model('usuario_model', 'usuario');
			$this->load->helper('funcoes_helper');
			
			$statusAprovado = array($campo => 1); // 1 = Aprovado
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->where('ped_codigo', $codigo);
			
			
// 			$alegroPedidos->update('tbl_pedido', $statusAprovado);
			
// 			echo "<pre>";
// 			print_r($alegroPedidos->last_query());
// 			echo "</pre>";
// 			exit;
			
			if($alegroPedidos->update('tbl_pedido', $statusAprovado)){													
				return TRUE;
			}
			
		} else {
			return FALSE;
		}
	}
	
	public function do_negar($codigo=NULL, $campo=NULL, $dados=NULL){
		if ($codigo != NULL && $campo != NULL && $dados != NULL){
			
			$this->load->model('usuario_model', 'usuario');
			$this->load->helper('funcoes_helper');
			
			$dados[$campo] = 2; // 2 = Negado
			//$dados['ped_status_comercial'] = 2; // 2 = Negado
			//$statusNegado = array($campo => 2); 
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->where('ped_codigo', $codigo);
			$alegroPedidos->update('tbl_pedido', $dados);
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	public function do_cancelar($codigo=NULL){
		if ($codigo != NULL){
			
			$this->load->model('usuario_model', 'usuario');
			$this->load->helper('funcoes_helper');
			
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido ON');
			$statusCancelado = array('ped_status' => 2); // 2 = Cancelado
			$alegroPedidos->where('ped_codigo', $codigo);
			$alegroPedidos->update('tbl_pedido', $statusCancelado);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido OFF');
			return TRUE;
		} else {
			return FALSE;
		}
	}
	
	public function do_excluir($codigo=NULL){
		if ($codigo != NULL){
			
			$this->load->model('usuario_model', 'usuario');
			$this->load->helper('funcoes_helper');
			
			$alegroPedidos = $this->load->database('alegro', TRUE);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido ON');
			$statusExcluido = array('ped_excluido' => 1); // 1 = Excluído
			$alegroPedidos->where('ped_codigo', $codigo);
			$alegroPedidos->update('tbl_pedido', $statusExcluido);
			$alegroPedidos->query('SET IDENTITY_INSERT dbo.tbl_pedido OFF');
			return TRUE;
		} else {
			return FALSE;
		}
	}

}